﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities.Auditing;

namespace BW.WMS.WareHouseAllot
{
    /// <summary>
    /// 货品类型实体
    /// </summary>
    [Table("GoodsTypeModel")]
    public class GoodsTypeModel:AuditedAggregateRoot<Guid>
    {
        /// <summary>
        /// 货品类型编码
        /// </summary>
        [Required(ErrorMessage = "货品类型不能为空")] // 非空约束（提示信息可选）
        [MaxLength(50, ErrorMessage = "货品类型长度不能超过50个字符")] // 最大长度50
        public string GoodsTypeCode { get; set; }

        /// <summary>
        /// 货品类型名称
        /// </summary>
        [Required(ErrorMessage = "货品类型不能为空")] // 非空约束（提示信息可选）
        [MaxLength(50, ErrorMessage = "货品类型长度不能超过50个字符")] // 最大长度50
        public string GoodsTypeName { get; set; }

        /// <summary>
        /// 货品类型状态
        /// true: 启用 false: 禁用
        /// </summary>
        public bool GoodsTypeStatue { get; set; }

        /// <summary>
        /// 货品类型备注
        /// </summary>
        [MaxLength(50, ErrorMessage = "货品备注长度不能超过100个字符")] // 最大长度100
        public string GoodsTypeNotes { get; set; }

        /// <summary>
        /// 父级编号
        /// </summary>
        public Guid ParentId { get; set; }

        /// <summary>
        /// 排序
        /// </summary>
        public int Sort { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        [MaxLength(30, ErrorMessage = "创建人长度不能超过30个字符")] // 最大长度30
        public string CreateName { get; set; }

        /// <summary>
        /// 软删除
        /// false: 未删除 true: 已删除
        /// </summary>
        public bool IsDeleted { get; set; } = false;
    }
}
